return this._appInfo.create_icon_texture(GenericDisplay.ITEM_DISPLAY_ICON_SIZE);
},
- // Ensures the preview icon is created.
- _ensurePreviewIconCreated : function() {
- if (!this._showPreview || this._previewIcon)
- return;
-
- let gicon = this._appInfo.get_icon();
- let previewIconPath = null;
- if (gicon) {
- let iconTheme = Gtk.IconTheme.get_default();
- let previewIconInfo = iconTheme.lookup_by_gicon(gicon, GenericDisplay.PREVIEW_ICON_SIZE, 0);
- if (previewIconInfo)
- previewIconPath = previewIconInfo.get_filename();
- }
-
- if (previewIconPath) {
- try {
- this._previewIcon = new Clutter.Texture({ width: GenericDisplay.PREVIEW_ICON_SIZE, height: GenericDisplay.PREVIEW_ICON_SIZE});
- this._previewIcon.set_from_file(previewIconPath);
- } catch (e) {
- // we can get an error here if the file path doesn't exist on the system
- log('Error loading AppDisplayItem preview icon ' + e);
- }
- }
+ // Returns a preview icon for the item.
+ _createPreviewIcon : function() {
+ return this._appInfo.create_icon_texture(GenericDisplay.PREVIEW_ICON_SIZE);
}
};
return this._docInfo.createIcon(GenericDisplay.ITEM_DISPLAY_ICON_SIZE);
},
- // Ensures the preview icon is created.
- _ensurePreviewIconCreated : function() {
- if (!this._previewIcon)
- this._previewIcon = this._docInfo.createIcon(GenericDisplay.PREVIEW_ICON_SIZE);
+ // Returns a preview icon for the item.
+ _createPreviewIcon : function() {
+ return this._docInfo.createIcon(GenericDisplay.PREVIEW_ICON_SIZE);
},
// Creates and returns a large preview icon, but only if this._docInfo is an image file
this._name = null;
this._description = null;
this._icon = null;
- this._previewIcon = null;
// An array of details description actors that we create over time for the item.
// It is used for updating the description text inside the details actor when
mainDetails.append(textDetails, Big.BoxPackFlags.EXPAND);
- this._ensurePreviewIconCreated();
+ let previewIcon = this._createPreviewIcon();
let largePreviewIcon = this._createLargePreviewIcon(availableWidth, Math.max(0, availableHeight - mainDetails.height - PREVIEW_BOX_SPACING));
- if (this._previewIcon != null && largePreviewIcon == null) {
- let previewIconClone = new Clutter.Clone({ source: this._previewIcon });
- mainDetails.prepend(previewIconClone, Big.BoxPackFlags.NONE);
+ if (previewIcon != null && largePreviewIcon == null) {
+ mainDetails.prepend(previewIcon, Big.BoxPackFlags.NONE);
}
details.append(mainDetails, Big.BoxPackFlags.NONE);
// and therefore should be responsible for distroying it
this._icon.destroy();
this._icon = null;
- }
- // This ensures we'll create a new previewIcon next time we need it
- if (this._previewIcon != null) {
- this._previewIcon.destroy();
- this._previewIcon = null;
}
this._icon = this._createIcon();
throw new Error("Not implemented");
},
- // Ensures the preview icon is created.
- _ensurePreviewIconCreated: function() {
+ // Returns a preview icon for the item.
+ _createPreviewIcon: function() {
throw new Error("Not implemented");
},